(function(){
    // 抽象类，不能创建实例对象，只能被继承
    abstract class Animal{
        name:string;
        age:number;
        constructor(name:string,age:number){
            this.name=name;
            this.age=age;
        }

        // 抽象方法，没有方法体，必须在子类中实现
        abstract sayHello():void;
    }

    class Dog extends Animal{
        sayHello(){
            console.log('汪汪汪');
        }
    }

    const dog=new Dog('旺财',3);
    dog.sayHello();

    // const animal=new Animal('动物',1); // 报错 因为抽象类不能创建实例对象
    // animal.sayHello();

    // class Cat extends Animal{
    //     // 不实现抽象方法sayHello，报错
    // }
    
})()

